const fs = require('fs');  
const path = require('path');  

const paths = []
const currentDir = process.cwd();  
// 从根目录开始遍历  
const rootDir = currentDir+'\\docs\\views'; // 替换为你的目录路径  
const filePath = currentDir+'/output.txt';  

// 递归遍历目录的函数  
function traverseDir(dir, callback) {  
    fs.readdirSync(dir).forEach(file => {  
        const fullPath = path.join(dir, file);  
          
        if (fs.lstatSync(fullPath).isDirectory()) {  
            // 如果是目录，递归遍历  
            traverseDir(fullPath, callback);  
        } else {  
            // 如果是文件，调用回调函数  
            callback(fullPath);  
        }  
    });  
}  
  
// 查找Markdown文件的回调函数  
function findMarkdownFiles(fullPath) {  
    const extname = path.extname(fullPath).toLowerCase();  
    if (extname === '.md' || extname === '.markdown') {
        const filename = path.basename(fullPath);  
        // if(filename == "29 _ HTTP_1：HTTP性能优化.md"){
        processMarkdownFile(fullPath)
        // }
        paths.push(fullPath.replace(rootDir+"\\", "").replace(".md", "").replace(/\\/g, "/"))
    }  
}  

traverseDir(rootDir, findMarkdownFiles);

try {  
    // 清空文件内容  
    fs.truncateSync(filePath, 0);  
    console.log('文件内容已清空');  
  
    // 清空文件后，写入新内容 
    paths_str = JSON.stringify(paths)
    paths.forEach(item=>{
        fs.appendFileSync(filePath, item+"\n");  
    })
    console.log('新数据已写入文件');  
} catch (err) {  
    console.error('发生错误:', err);  
}



function processMarkdownFile(filePath) {  
    const fileContent = fs.readFileSync(filePath, 'utf8');  
    const items = filePath.split('\\')
    const filename = items[items.length-1].replace(".md", "")
    const tag = items[items.length-2]
    const prefixToAdd = `---\ntitle: ${filename}\ndate: 2024-04-20\ntags:\n   - ${tag}\ncategories:\n   - ${tag}\nisShowComments: false\n---\n\n<Boxx/>\n\n[[toc]]\n\n`
    // 检查文件开头是否不是“---”  
    if (!fileContent.startsWith('---')) {  
        // 在文件开头添加字符串  
        const newContent = prefixToAdd + fileContent;  
        fs.writeFileSync(filePath, newContent, 'utf8');  
        console.log(`在文件 ${filePath} 开头添加了内容。`);  
    } else {  
        console.log(`文件 ${filePath} 开头已经是“---”，无需修改。`);  
    }  
} 